/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itsc.dswII.bl;

import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itsc.dswII.dao.BeneficioDaoLocal;
import mx.itsc.dswII.ennumeracionl.EstadoTransaccion;
import mx.itsc.dswII.model.Beneficio;

/**
 *
 * @beneficio Lenovo-user
 */
@Stateless
public class BeneficioBl implements BeneficioBlLocal {
    @EJB
    private BeneficioDaoLocal beneficioDao;

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    
    @Override
    public EstadoTransaccion register(Beneficio beneficio) {
         if (beneficioDao.findDuplicity(beneficio)) {
            //no se pudo hacer
            return EstadoTransaccion.INCOMPLETO;
        } else {
            beneficio.setHora(new Time(new Date().getTime()));
             beneficioDao.create(beneficio);
                 return EstadoTransaccion.COMPLETO;

        }
    }
 @Override
    public EstadoTransaccion modify(Beneficio beneficio) {
        if (beneficio.getId() == null || beneficioDao.find(beneficio.getId()) == null) {
            return EstadoTransaccion.INCOMPLETO;
        } else {
            beneficioDao.edit(beneficio);
            return EstadoTransaccion.COMPLETO;
        }

    }

    @Override
    public EstadoTransaccion remove(Beneficio beneficio) {

        if (beneficioDao.find(beneficio.getId()) == null || beneficio.getId() == null) {

            return EstadoTransaccion.INCOMPLETO;
        } else {
            beneficioDao.remove(beneficio);
            return EstadoTransaccion.COMPLETO;
        }

    }
    
    @Override
    public List<Beneficio> getAll() {
        return beneficioDao.findAll();
    }
   
    public List<Beneficio> getListByNombre(Beneficio beneficio) {
        List<Beneficio> beneficioList = beneficioDao.findByBeneficio(beneficio);
        List<Beneficio> finalBeneficioList = new ArrayList<Beneficio>();
        
        for (Beneficio emp : beneficioList) {
            finalBeneficioList.add(emp);
        }
        return finalBeneficioList;
    }
}
